
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
  <head>
    <meta charset="utf-8" />
    <title>winreg --- Windows 注册表访问 &#8212; Python 3.7.8 文档</title>
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <script type="text/javascript" src="../_static/translations.js"></script>
    
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    
    <link rel="search" type="application/opensearchdescription+xml"
          title="在 Python 3.7.8 文档 中搜索"
          href="../_static/opensearch.xml"/>
    <link rel="author" title="关于这些文档" href="../about.html" />
    <link rel="index" title="索引" href="../genindex.html" />
    <link rel="search" title="搜索" href="../search.html" />
    <link rel="copyright" title="版权所有" href="../copyright.html" />
    <link rel="next" title="winsound --- Sound-playing interface for Windows" href="winsound.html" />
    <link rel="prev" title="msvcrt --- 来自 MS VC++ 运行时的有用例程" href="msvcrt.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
    <link rel="canonical" href="https://docs.python.org/3/library/winreg.html" />
    
    <script type="text/javascript" src="../_static/copybutton.js"></script>
    
    
    
    
    <style>
      @media only screen {
        table.full-width-table {
            width: 100%;
        }
      }
    </style>
 

  </head><body>
  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="总目录"
             accesskey="I">索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="winsound.html" title="winsound --- Sound-playing interface for Windows"
             accesskey="N">下一页</a> |</li>
        <li class="right" >
          <a href="msvcrt.html" title="msvcrt --- 来自 MS VC++ 运行时的有用例程"
             accesskey="P">上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <a href="../index.html">3.7.8 Documentation</a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="windows.html" accesskey="U">Windows系统相关模块</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="快速搜索" type="text" name="q" />
          <input type="submit" value="转向" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>    

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="module-winreg">
<span id="winreg-windows-registry-access"></span><h1><a class="reference internal" href="#module-winreg" title="winreg: Routines and objects for manipulating the Windows registry. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winreg</span></code></a> --- Windows 注册表访问<a class="headerlink" href="#module-winreg" title="永久链接至标题">¶</a></h1>
<hr class="docutils" />
<p>这些函数将 Windows 注册表 API 暴露给 Python。为了确保即便程序员忽略了显式关闭句柄，该句柄依然能够正确关闭，它使用了一个 <a class="reference internal" href="#handle-object"><span class="std std-ref">handle 对象</span></a> 而不是整数来作为注册表句柄。</p>
<div class="versionchanged" id="exception-changed">
<p><span class="versionmodified changed">在 3.3 版更改: </span>该模块中的几个函数被用于引发 <a class="reference internal" href="exceptions.html#WindowsError" title="WindowsError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">WindowsError</span></code></a>，该异常现在是 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 的别名。</p>
</div>
<div class="section" id="functions">
<span id="id1"></span><h2>函数<a class="headerlink" href="#functions" title="永久链接至标题">¶</a></h2>
<p>该模块提供了下列函数：</p>
<dl class="function">
<dt id="winreg.CloseKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">CloseKey</code><span class="sig-paren">(</span><em class="sig-param">hkey</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.CloseKey" title="永久链接至目标">¶</a></dt>
<dd><p>关闭之前打开的注册表键。参数 <em>hkey</em> 指之前打开的键。</p>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>如果没有使用该方法关闭 <em>hkey</em> (或者通过 <a class="reference internal" href="#winreg.PyHKEY.Close" title="winreg.PyHKEY.Close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">hkey.Close()</span></code></a>)，在对象 <em>hkey</em> 被 Python 销毁时会将其关闭。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.ConnectRegistry">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">ConnectRegistry</code><span class="sig-paren">(</span><em class="sig-param">computer_name</em>, <em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.ConnectRegistry" title="永久链接至目标">¶</a></dt>
<dd><p>建立到另一台计算上上的预定义注册表句柄的连接，并返回一个 <a class="reference internal" href="#handle-object"><span class="std std-ref">handle 对象</span></a>.</p>
<p><em>computer_name</em> 是远程计算机的名称，以 <code class="docutils literal notranslate"><span class="pre">r&quot;\\computername&quot;</span></code> 的形式。如果是 <code class="docutils literal notranslate"><span class="pre">None</span></code> ，将会使用本地计算机。</p>
<p><em>key</em> 是所连接到的预定义句柄。</p>
<p>返回值是所开打键的句柄。如果函数失败，则引发一个 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常。</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.CreateKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">CreateKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.CreateKey" title="永久链接至目标">¶</a></dt>
<dd><p>创建或打开特定的键，返回一个 <a class="reference internal" href="#handle-object"><span class="std std-ref">handle 对象</span></a>。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> 是用于命名该方法所打开或创建的键的字符串。</p>
<p>如果 <em>key</em> 是预定义键之一，<em>sub_key</em> 可能会是 <code class="docutils literal notranslate"><span class="pre">None</span></code>。该情况下，返回的句柄就是传入函数的句柄。</p>
<p>如果键已经存在，则该函数打开已经存在的该键。</p>
<p>返回值是所开打键的句柄。如果函数失败，则引发一个 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常。</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.CreateKeyEx">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">CreateKeyEx</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">reserved=0</em>, <em class="sig-param">access=KEY_WRITE</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.CreateKeyEx" title="永久链接至目标">¶</a></dt>
<dd><p>创建或打开特定的键，返回一个 <a class="reference internal" href="#handle-object"><span class="std std-ref">handle 对象</span></a>。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> 是用于命名该方法所打开或创建的键的字符串。</p>
<p><em>reserved</em> 是一个保留的证书，必须是零。默认值为零。</p>
<p><em>access</em> 为一个整数，用于给键的预期安全访问指定访问掩码。默认值为 <a class="reference internal" href="#winreg.KEY_WRITE" title="winreg.KEY_WRITE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_WRITE</span></code></a>。 参阅 <a class="reference internal" href="#access-rights"><span class="std std-ref">Access Rights</span></a>  了解其它允许值。</p>
<p>如果 <em>key</em> 是预定义键之一，<em>sub_key</em> 可能会是 <code class="docutils literal notranslate"><span class="pre">None</span></code>。该情况下，返回的句柄就是传入函数的句柄。</p>
<p>如果键已经存在，则该函数打开已经存在的该键。</p>
<p>返回值是所开打键的句柄。如果函数失败，则引发一个 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.2 新版功能.</span></p>
</div>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.DeleteKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">DeleteKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.DeleteKey" title="永久链接至目标">¶</a></dt>
<dd><p>删除指定的键。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> 这个字符串必须是由 <em>key</em> 参数所指定键的一个子项。该值项不可以是 <code class="docutils literal notranslate"><span class="pre">None</span></code>，同时键也不可以有子项。</p>
<p><em>该方法不能删除带有子项的键。</em></p>
<p>如果方法成功，则整个键，包括其所有值项都会被移除。如果方法失败，则引发一个 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常。</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.DeleteKeyEx">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">DeleteKeyEx</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">access=KEY_WOW64_64KEY</em>, <em class="sig-param">reserved=0</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.DeleteKeyEx" title="永久链接至目标">¶</a></dt>
<dd><p>删除指定的键。</p>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>函数 <a class="reference internal" href="#winreg.DeleteKeyEx" title="winreg.DeleteKeyEx"><code class="xref py py-func docutils literal notranslate"><span class="pre">DeleteKeyEx()</span></code></a> 通过 RegDeleteKeyEx 这个 Windows API 函数实现，该函数为 Windows 的64位版本专属。 参阅 <a class="reference external" href="https://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx">RegDeleteKeyEx 文档</a>。</p>
</div>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> 这个字符串必须是由 <em>key</em> 参数所指定键的一个子项。该值项不可以是 <code class="docutils literal notranslate"><span class="pre">None</span></code>，同时键也不可以有子项。</p>
<p><em>reserved</em> 是一个保留的证书，必须是零。默认值为零。</p>
<p><em>access</em> 为一个整数，用于给键的预期安全访问指定访问掩码。默认值为常量 <code class="xref py py-const docutils literal notranslate"><span class="pre">_WOW64_64KEY</span></code> 。参阅 <a class="reference internal" href="#access-rights"><span class="std std-ref">Access Rights</span></a>  了解其它允许值。</p>
<p><em>该方法不能删除带有子项的键。</em></p>
<p>如果方法成功，则整个键，包括其所有值项都会被移除。如果方法失败，则引发一个 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常。</p>
<p>在不支持的 Windows 版本之上，将会引发 <a class="reference internal" href="exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a> 异常。</p>
<div class="versionadded">
<p><span class="versionmodified added">3.2 新版功能.</span></p>
</div>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.DeleteValue">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">DeleteValue</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.DeleteValue" title="永久链接至目标">¶</a></dt>
<dd><p>从某个注册键中删除一个命名值项。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>value</em> 为标识所要删除值项的字符串。</p>
</dd></dl>

<dl class="function">
<dt id="winreg.EnumKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">EnumKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.EnumKey" title="永久链接至目标">¶</a></dt>
<dd><p>列举某个已经打开注册表键的子项，并返回一个字符串。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>index</em> 为一个整数，用于标识所获取键的索引。</p>
<p>每次调用该函数都会获取一个子项的名字。通常它会被反复调用，直到引发 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常，这说明已经没有更多的可用值了。</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.EnumValue">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">EnumValue</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">index</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.EnumValue" title="永久链接至目标">¶</a></dt>
<dd><p>列举某个已经打开注册表键的值项，并返回一个元组。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>index</em> 为一个整数，用于标识要获取值项的索引。</p>
<p>每次调用该函数都会获取一个子项的名字。通常它会被反复调用，直到引发 <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> 异常，这说明已经没有更多的可用值了。</p>
<p>结果为3元素的元组。</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 14%" />
<col style="width: 86%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>索引</p></th>
<th class="head"><p>含义</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p></td>
<td><p>用于标识值项名称的字符串。</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p></td>
<td><p>保存值项数据的对象，其类型取决于背后的注册表类型。</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">2</span></code></p></td>
<td><p>标识值项数据类型的整数。（请查阅 <a class="reference internal" href="#winreg.SetValueEx" title="winreg.SetValueEx"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetValueEx()</span></code></a> 文档中的表格）</p></td>
</tr>
</tbody>
</table>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<span class="target" id="index-0"></span><dl class="function">
<dt id="winreg.ExpandEnvironmentStrings">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">ExpandEnvironmentStrings</code><span class="sig-paren">(</span><em class="sig-param">str</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.ExpandEnvironmentStrings" title="永久链接至目标">¶</a></dt>
<dd><p>Expands environment variable placeholders <code class="docutils literal notranslate"><span class="pre">%NAME%</span></code> in strings like
<a class="reference internal" href="#winreg.REG_EXPAND_SZ" title="winreg.REG_EXPAND_SZ"><code class="xref py py-const docutils literal notranslate"><span class="pre">REG_EXPAND_SZ</span></code></a>:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">ExpandEnvironmentStrings</span><span class="p">(</span><span class="s1">&#39;%windir%&#39;</span><span class="p">)</span>
<span class="go">&#39;C:\\Windows&#39;</span>
</pre></div>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.FlushKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">FlushKey</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.FlushKey" title="永久链接至目标">¶</a></dt>
<dd><p>将某个键的所有属性写入注册表。</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p>It is not necessary to call <a class="reference internal" href="#winreg.FlushKey" title="winreg.FlushKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">FlushKey()</span></code></a> to change a key. Registry changes are
flushed to disk by the registry using its lazy flusher.  Registry changes are
also flushed to disk at system shutdown.  Unlike <a class="reference internal" href="#winreg.CloseKey" title="winreg.CloseKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseKey()</span></code></a>, the
<a class="reference internal" href="#winreg.FlushKey" title="winreg.FlushKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">FlushKey()</span></code></a> method returns only when all the data has been written to the
registry. An application should only call <a class="reference internal" href="#winreg.FlushKey" title="winreg.FlushKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">FlushKey()</span></code></a> if it requires
absolute certainty that registry changes are on disk.</p>
<div class="admonition note">
<p class="admonition-title">注解</p>
<p>If you don't know whether a <a class="reference internal" href="#winreg.FlushKey" title="winreg.FlushKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">FlushKey()</span></code></a> call is required, it probably
isn't.</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.LoadKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">LoadKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">file_name</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.LoadKey" title="永久链接至目标">¶</a></dt>
<dd><p>Creates a subkey under the specified key and stores registration information
from a specified file into that subkey.</p>
<p><em>key</em> is a handle returned by <a class="reference internal" href="#winreg.ConnectRegistry" title="winreg.ConnectRegistry"><code class="xref py py-func docutils literal notranslate"><span class="pre">ConnectRegistry()</span></code></a> or one of the constants
<a class="reference internal" href="#winreg.HKEY_USERS" title="winreg.HKEY_USERS"><code class="xref py py-const docutils literal notranslate"><span class="pre">HKEY_USERS</span></code></a> or <a class="reference internal" href="#winreg.HKEY_LOCAL_MACHINE" title="winreg.HKEY_LOCAL_MACHINE"><code class="xref py py-const docutils literal notranslate"><span class="pre">HKEY_LOCAL_MACHINE</span></code></a>.</p>
<p><em>sub_key</em> is a string that identifies the subkey to load.</p>
<p><em>file_name</em> is the name of the file to load registry data from. This file must
have been created with the <a class="reference internal" href="#winreg.SaveKey" title="winreg.SaveKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">SaveKey()</span></code></a> function. Under the file allocation
table (FAT) file system, the filename may not have an extension.</p>
<p>A call to <a class="reference internal" href="#winreg.LoadKey" title="winreg.LoadKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">LoadKey()</span></code></a> fails if the calling process does not have the
<code class="xref py py-const docutils literal notranslate"><span class="pre">SE_RESTORE_PRIVILEGE</span></code> privilege.  Note that privileges are different
from permissions -- see the <a class="reference external" href="https://msdn.microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx">RegLoadKey documentation</a> for
more details.</p>
<p>If <em>key</em> is a handle returned by <a class="reference internal" href="#winreg.ConnectRegistry" title="winreg.ConnectRegistry"><code class="xref py py-func docutils literal notranslate"><span class="pre">ConnectRegistry()</span></code></a>, then the path
specified in <em>file_name</em> is relative to the remote computer.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.OpenKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">OpenKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">reserved=0</em>, <em class="sig-param">access=KEY_READ</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.OpenKey" title="永久链接至目标">¶</a></dt>
<dt id="winreg.OpenKeyEx">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">OpenKeyEx</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">reserved=0</em>, <em class="sig-param">access=KEY_READ</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.OpenKeyEx" title="永久链接至目标">¶</a></dt>
<dd><p>Opens the specified key, returning a <a class="reference internal" href="#handle-object"><span class="std std-ref">handle object</span></a>.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> is a string that identifies the sub_key to open.</p>
<p><em>reserved</em> is a reserved integer, and must be zero.  The default is zero.</p>
<p><em>access</em> is an integer that specifies an access mask that describes the desired
security access for the key.  Default is <a class="reference internal" href="#winreg.KEY_READ" title="winreg.KEY_READ"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_READ</span></code></a>.  See <a class="reference internal" href="#access-rights"><span class="std std-ref">Access
Rights</span></a> for other allowed values.</p>
<p>The result is a new handle to the specified key.</p>
<p>If the function fails, <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> is raised.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.2 版更改: </span>Allow the use of named arguments.</p>
</div>
<div class="versionchanged">
<p><span class="versionmodified changed">在 3.3 版更改: </span>参考 <a class="reference internal" href="#exception-changed"><span class="std std-ref">上文</span></a>。</p>
</div>
</dd></dl>

<dl class="function">
<dt id="winreg.QueryInfoKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">QueryInfoKey</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.QueryInfoKey" title="永久链接至目标">¶</a></dt>
<dd><p>Returns information about a key, as a tuple.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p>结果为3元素的元组。</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 13%" />
<col style="width: 87%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>索引</p></th>
<th class="head"><p>含义</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p></td>
<td><p>An integer giving the number of sub keys
this key has.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p></td>
<td><p>An integer giving the number of values this
key has.</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">2</span></code></p></td>
<td><p>An integer giving when the key was last
modified (if available) as 100's of
nanoseconds since Jan 1, 1601.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="winreg.QueryValue">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">QueryValue</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.QueryValue" title="永久链接至目标">¶</a></dt>
<dd><p>Retrieves the unnamed value for a key, as a string.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> is a string that holds the name of the subkey with which the value is
associated.  If this parameter is <code class="docutils literal notranslate"><span class="pre">None</span></code> or empty, the function retrieves the
value set by the <a class="reference internal" href="#winreg.SetValue" title="winreg.SetValue"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetValue()</span></code></a> method for the key identified by <em>key</em>.</p>
<p>Values in the registry have name, type, and data components. This method
retrieves the data for a key's first value that has a <code class="docutils literal notranslate"><span class="pre">NULL</span></code> name. But the
underlying API call doesn't return the type, so always use
<a class="reference internal" href="#winreg.QueryValueEx" title="winreg.QueryValueEx"><code class="xref py py-func docutils literal notranslate"><span class="pre">QueryValueEx()</span></code></a> if possible.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.QueryValueEx">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">QueryValueEx</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">value_name</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.QueryValueEx" title="永久链接至目标">¶</a></dt>
<dd><p>Retrieves the type and data for a specified value name associated with
an open registry key.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>value_name</em> is a string indicating the value to query.</p>
<p>The result is a tuple of 2 items:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 15%" />
<col style="width: 85%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>索引</p></th>
<th class="head"><p>含义</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">0</span></code></p></td>
<td><p>The value of the registry item.</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">1</span></code></p></td>
<td><p>An integer giving the registry type for
this value (see table in docs for
<a class="reference internal" href="#winreg.SetValueEx" title="winreg.SetValueEx"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SetValueEx()</span></code></a>)</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="winreg.SaveKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">SaveKey</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">file_name</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.SaveKey" title="永久链接至目标">¶</a></dt>
<dd><p>Saves the specified key, and all its subkeys to the specified file.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>file_name</em> is the name of the file to save registry data to.  This file
cannot already exist. If this filename includes an extension, it cannot be
used on file allocation table (FAT) file systems by the <a class="reference internal" href="#winreg.LoadKey" title="winreg.LoadKey"><code class="xref py py-meth docutils literal notranslate"><span class="pre">LoadKey()</span></code></a>
method.</p>
<p>If <em>key</em> represents a key on a remote computer, the path described by
<em>file_name</em> is relative to the remote computer. The caller of this method must
possess the <code class="xref py py-const docutils literal notranslate"><span class="pre">SeBackupPrivilege</span></code> security privilege.  Note that
privileges are different than permissions -- see the
<a class="reference external" href="https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx">Conflicts Between User Rights and Permissions documentation</a>
for more details.</p>
<p>This function passes <code class="docutils literal notranslate"><span class="pre">NULL</span></code> for <em>security_attributes</em> to the API.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.SetValue">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">SetValue</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">sub_key</em>, <em class="sig-param">type</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.SetValue" title="永久链接至目标">¶</a></dt>
<dd><p>Associates a value with a specified key.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>sub_key</em> is a string that names the subkey with which the value is associated.</p>
<p><em>type</em> is an integer that specifies the type of the data. Currently this must be
<a class="reference internal" href="#winreg.REG_SZ" title="winreg.REG_SZ"><code class="xref py py-const docutils literal notranslate"><span class="pre">REG_SZ</span></code></a>, meaning only strings are supported.  Use the <a class="reference internal" href="#winreg.SetValueEx" title="winreg.SetValueEx"><code class="xref py py-func docutils literal notranslate"><span class="pre">SetValueEx()</span></code></a>
function for support for other data types.</p>
<p><em>value</em> is a string that specifies the new value.</p>
<p>If the key specified by the <em>sub_key</em> parameter does not exist, the SetValue
function creates it.</p>
<p>Value lengths are limited by available memory. Long values (more than 2048
bytes) should be stored as files with the filenames stored in the configuration
registry.  This helps the registry perform efficiently.</p>
<p>The key identified by the <em>key</em> parameter must have been opened with
<a class="reference internal" href="#winreg.KEY_SET_VALUE" title="winreg.KEY_SET_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_SET_VALUE</span></code></a> access.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.SetValueEx">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">SetValueEx</code><span class="sig-paren">(</span><em class="sig-param">key</em>, <em class="sig-param">value_name</em>, <em class="sig-param">reserved</em>, <em class="sig-param">type</em>, <em class="sig-param">value</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.SetValueEx" title="永久链接至目标">¶</a></dt>
<dd><p>Stores data in the value field of an open registry key.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p><em>value_name</em> is a string that names the subkey with which the value is
associated.</p>
<p><em>reserved</em> can be anything -- zero is always passed to the API.</p>
<p><em>type</em> is an integer that specifies the type of the data. See
<a class="reference internal" href="#value-types"><span class="std std-ref">Value Types</span></a> for the available types.</p>
<p><em>value</em> is a string that specifies the new value.</p>
<p>This method can also set additional value and type information for the specified
key.  The key identified by the key parameter must have been opened with
<a class="reference internal" href="#winreg.KEY_SET_VALUE" title="winreg.KEY_SET_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_SET_VALUE</span></code></a> access.</p>
<p>To open the key, use the <a class="reference internal" href="#winreg.CreateKey" title="winreg.CreateKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">CreateKey()</span></code></a> or <a class="reference internal" href="#winreg.OpenKey" title="winreg.OpenKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">OpenKey()</span></code></a> methods.</p>
<p>Value lengths are limited by available memory. Long values (more than 2048
bytes) should be stored as files with the filenames stored in the configuration
registry.  This helps the registry perform efficiently.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.DisableReflectionKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">DisableReflectionKey</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.DisableReflectionKey" title="永久链接至目标">¶</a></dt>
<dd><p>Disables registry reflection for 32-bit processes running on a 64-bit
operating system.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p>Will generally raise <a class="reference internal" href="exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a> if executed on a 32-bit operating
system.</p>
<p>If the key is not on the reflection list, the function succeeds but has no
effect.  Disabling reflection for a key does not affect reflection of any
subkeys.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.EnableReflectionKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">EnableReflectionKey</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.EnableReflectionKey" title="永久链接至目标">¶</a></dt>
<dd><p>Restores registry reflection for the specified disabled key.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p>Will generally raise <a class="reference internal" href="exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a> if executed on a 32-bit operating
system.</p>
<p>Restoring reflection for a key does not affect reflection of any subkeys.</p>
</dd></dl>

<dl class="function">
<dt id="winreg.QueryReflectionKey">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">QueryReflectionKey</code><span class="sig-paren">(</span><em class="sig-param">key</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.QueryReflectionKey" title="永久链接至目标">¶</a></dt>
<dd><p>Determines the reflection state for the specified key.</p>
<p><em>key</em> 为某个已经打开的键，或者预定义的 <a class="reference internal" href="#hkey-constants"><span class="std std-ref">HKEY_* 常量</span></a> 之一。</p>
<p>Returns <code class="docutils literal notranslate"><span class="pre">True</span></code> if reflection is disabled.</p>
<p>Will generally raise <a class="reference internal" href="exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a> if executed on a 32-bit
operating system.</p>
</dd></dl>

</div>
<div class="section" id="constants">
<span id="id2"></span><h2>常量<a class="headerlink" href="#constants" title="永久链接至标题">¶</a></h2>
<p>The following constants are defined for use in many <code class="xref py py-mod docutils literal notranslate"><span class="pre">_winreg</span></code> functions.</p>
<div class="section" id="hkey-constants">
<span id="id3"></span><h3>HKEY_* Constants<a class="headerlink" href="#hkey-constants" title="永久链接至标题">¶</a></h3>
<dl class="data">
<dt id="winreg.HKEY_CLASSES_ROOT">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_CLASSES_ROOT</code><a class="headerlink" href="#winreg.HKEY_CLASSES_ROOT" title="永久链接至目标">¶</a></dt>
<dd><p>Registry entries subordinate to this key define types (or classes) of
documents and the properties associated with those types. Shell and
COM applications use the information stored under this key.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_CURRENT_USER">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_CURRENT_USER</code><a class="headerlink" href="#winreg.HKEY_CURRENT_USER" title="永久链接至目标">¶</a></dt>
<dd><p>Registry entries subordinate to this key define the preferences of
the current user. These preferences include the settings of
environment variables, data about program groups, colors, printers,
network connections, and application preferences.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_LOCAL_MACHINE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_LOCAL_MACHINE</code><a class="headerlink" href="#winreg.HKEY_LOCAL_MACHINE" title="永久链接至目标">¶</a></dt>
<dd><p>Registry entries subordinate to this key define the physical state
of the computer, including data about the bus type, system memory,
and installed hardware and software.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_USERS">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_USERS</code><a class="headerlink" href="#winreg.HKEY_USERS" title="永久链接至目标">¶</a></dt>
<dd><p>Registry entries subordinate to this key define the default user
configuration for new users on the local computer and the user
configuration for the current user.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_PERFORMANCE_DATA">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_PERFORMANCE_DATA</code><a class="headerlink" href="#winreg.HKEY_PERFORMANCE_DATA" title="永久链接至目标">¶</a></dt>
<dd><p>Registry entries subordinate to this key allow you to access
performance data. The data is not actually stored in the registry;
the registry functions cause the system to collect the data from
its source.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_CURRENT_CONFIG">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_CURRENT_CONFIG</code><a class="headerlink" href="#winreg.HKEY_CURRENT_CONFIG" title="永久链接至目标">¶</a></dt>
<dd><p>Contains information about the current hardware profile of the
local computer system.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.HKEY_DYN_DATA">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">HKEY_DYN_DATA</code><a class="headerlink" href="#winreg.HKEY_DYN_DATA" title="永久链接至目标">¶</a></dt>
<dd><p>This key is not used in versions of Windows after 98.</p>
</dd></dl>

</div>
<div class="section" id="access-rights">
<span id="id4"></span><h3>Access Rights<a class="headerlink" href="#access-rights" title="永久链接至标题">¶</a></h3>
<p>For more information, see <a class="reference external" href="https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx">Registry Key Security and Access</a>.</p>
<dl class="data">
<dt id="winreg.KEY_ALL_ACCESS">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_ALL_ACCESS</code><a class="headerlink" href="#winreg.KEY_ALL_ACCESS" title="永久链接至目标">¶</a></dt>
<dd><p>Combines the STANDARD_RIGHTS_REQUIRED, <a class="reference internal" href="#winreg.KEY_QUERY_VALUE" title="winreg.KEY_QUERY_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_QUERY_VALUE</span></code></a>,
<a class="reference internal" href="#winreg.KEY_SET_VALUE" title="winreg.KEY_SET_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_SET_VALUE</span></code></a>, <a class="reference internal" href="#winreg.KEY_CREATE_SUB_KEY" title="winreg.KEY_CREATE_SUB_KEY"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_CREATE_SUB_KEY</span></code></a>,
<a class="reference internal" href="#winreg.KEY_ENUMERATE_SUB_KEYS" title="winreg.KEY_ENUMERATE_SUB_KEYS"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_ENUMERATE_SUB_KEYS</span></code></a>, <a class="reference internal" href="#winreg.KEY_NOTIFY" title="winreg.KEY_NOTIFY"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_NOTIFY</span></code></a>,
and <a class="reference internal" href="#winreg.KEY_CREATE_LINK" title="winreg.KEY_CREATE_LINK"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_CREATE_LINK</span></code></a> access rights.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_WRITE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_WRITE</code><a class="headerlink" href="#winreg.KEY_WRITE" title="永久链接至目标">¶</a></dt>
<dd><p>Combines the STANDARD_RIGHTS_WRITE, <a class="reference internal" href="#winreg.KEY_SET_VALUE" title="winreg.KEY_SET_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_SET_VALUE</span></code></a>, and
<a class="reference internal" href="#winreg.KEY_CREATE_SUB_KEY" title="winreg.KEY_CREATE_SUB_KEY"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_CREATE_SUB_KEY</span></code></a> access rights.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_READ">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_READ</code><a class="headerlink" href="#winreg.KEY_READ" title="永久链接至目标">¶</a></dt>
<dd><p>Combines the STANDARD_RIGHTS_READ, <a class="reference internal" href="#winreg.KEY_QUERY_VALUE" title="winreg.KEY_QUERY_VALUE"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_QUERY_VALUE</span></code></a>,
<a class="reference internal" href="#winreg.KEY_ENUMERATE_SUB_KEYS" title="winreg.KEY_ENUMERATE_SUB_KEYS"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_ENUMERATE_SUB_KEYS</span></code></a>, and <a class="reference internal" href="#winreg.KEY_NOTIFY" title="winreg.KEY_NOTIFY"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_NOTIFY</span></code></a> values.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_EXECUTE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_EXECUTE</code><a class="headerlink" href="#winreg.KEY_EXECUTE" title="永久链接至目标">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#winreg.KEY_READ" title="winreg.KEY_READ"><code class="xref py py-const docutils literal notranslate"><span class="pre">KEY_READ</span></code></a>.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_QUERY_VALUE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_QUERY_VALUE</code><a class="headerlink" href="#winreg.KEY_QUERY_VALUE" title="永久链接至目标">¶</a></dt>
<dd><p>Required to query the values of a registry key.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_SET_VALUE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_SET_VALUE</code><a class="headerlink" href="#winreg.KEY_SET_VALUE" title="永久链接至目标">¶</a></dt>
<dd><p>Required to create, delete, or set a registry value.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_CREATE_SUB_KEY">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_CREATE_SUB_KEY</code><a class="headerlink" href="#winreg.KEY_CREATE_SUB_KEY" title="永久链接至目标">¶</a></dt>
<dd><p>Required to create a subkey of a registry key.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_ENUMERATE_SUB_KEYS">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_ENUMERATE_SUB_KEYS</code><a class="headerlink" href="#winreg.KEY_ENUMERATE_SUB_KEYS" title="永久链接至目标">¶</a></dt>
<dd><p>Required to enumerate the subkeys of a registry key.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_NOTIFY">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_NOTIFY</code><a class="headerlink" href="#winreg.KEY_NOTIFY" title="永久链接至目标">¶</a></dt>
<dd><p>Required to request change notifications for a registry key or for
subkeys of a registry key.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_CREATE_LINK">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_CREATE_LINK</code><a class="headerlink" href="#winreg.KEY_CREATE_LINK" title="永久链接至目标">¶</a></dt>
<dd><p>Reserved for system use.</p>
</dd></dl>

<div class="section" id="bit-specific">
<span id="bit-access-rights"></span><h4>64-bit Specific<a class="headerlink" href="#bit-specific" title="永久链接至标题">¶</a></h4>
<p>For more information, see <a class="reference external" href="https://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx">Accessing an Alternate Registry View</a>.</p>
<dl class="data">
<dt id="winreg.KEY_WOW64_64KEY">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_WOW64_64KEY</code><a class="headerlink" href="#winreg.KEY_WOW64_64KEY" title="永久链接至目标">¶</a></dt>
<dd><p>Indicates that an application on 64-bit Windows should operate on
the 64-bit registry view.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.KEY_WOW64_32KEY">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">KEY_WOW64_32KEY</code><a class="headerlink" href="#winreg.KEY_WOW64_32KEY" title="永久链接至目标">¶</a></dt>
<dd><p>Indicates that an application on 64-bit Windows should operate on
the 32-bit registry view.</p>
</dd></dl>

</div>
</div>
<div class="section" id="value-types">
<span id="id5"></span><h3>Value Types<a class="headerlink" href="#value-types" title="永久链接至标题">¶</a></h3>
<p>For more information, see <a class="reference external" href="https://msdn.microsoft.com/en-us/library/ms724884%28v=VS.85%29.aspx">Registry Value Types</a>.</p>
<dl class="data">
<dt id="winreg.REG_BINARY">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_BINARY</code><a class="headerlink" href="#winreg.REG_BINARY" title="永久链接至目标">¶</a></dt>
<dd><p>Binary data in any form.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_DWORD">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_DWORD</code><a class="headerlink" href="#winreg.REG_DWORD" title="永久链接至目标">¶</a></dt>
<dd><p>32-bit number.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_DWORD_LITTLE_ENDIAN">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_DWORD_LITTLE_ENDIAN</code><a class="headerlink" href="#winreg.REG_DWORD_LITTLE_ENDIAN" title="永久链接至目标">¶</a></dt>
<dd><p>A 32-bit number in little-endian format. Equivalent to <a class="reference internal" href="#winreg.REG_DWORD" title="winreg.REG_DWORD"><code class="xref py py-const docutils literal notranslate"><span class="pre">REG_DWORD</span></code></a>.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_DWORD_BIG_ENDIAN">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_DWORD_BIG_ENDIAN</code><a class="headerlink" href="#winreg.REG_DWORD_BIG_ENDIAN" title="永久链接至目标">¶</a></dt>
<dd><p>A 32-bit number in big-endian format.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_EXPAND_SZ">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_EXPAND_SZ</code><a class="headerlink" href="#winreg.REG_EXPAND_SZ" title="永久链接至目标">¶</a></dt>
<dd><p>Null-terminated string containing references to environment
variables (<code class="docutils literal notranslate"><span class="pre">%PATH%</span></code>).</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_LINK">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_LINK</code><a class="headerlink" href="#winreg.REG_LINK" title="永久链接至目标">¶</a></dt>
<dd><p>A Unicode symbolic link.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_MULTI_SZ">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_MULTI_SZ</code><a class="headerlink" href="#winreg.REG_MULTI_SZ" title="永久链接至目标">¶</a></dt>
<dd><p>A sequence of null-terminated strings, terminated by two null characters.
(Python handles this termination automatically.)</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_NONE">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_NONE</code><a class="headerlink" href="#winreg.REG_NONE" title="永久链接至目标">¶</a></dt>
<dd><p>No defined value type.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_QWORD">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_QWORD</code><a class="headerlink" href="#winreg.REG_QWORD" title="永久链接至目标">¶</a></dt>
<dd><p>A 64-bit number.</p>
<div class="versionadded">
<p><span class="versionmodified added">3.6 新版功能.</span></p>
</div>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_QWORD_LITTLE_ENDIAN">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_QWORD_LITTLE_ENDIAN</code><a class="headerlink" href="#winreg.REG_QWORD_LITTLE_ENDIAN" title="永久链接至目标">¶</a></dt>
<dd><p>A 64-bit number in little-endian format. Equivalent to <a class="reference internal" href="#winreg.REG_QWORD" title="winreg.REG_QWORD"><code class="xref py py-const docutils literal notranslate"><span class="pre">REG_QWORD</span></code></a>.</p>
<div class="versionadded">
<p><span class="versionmodified added">3.6 新版功能.</span></p>
</div>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_RESOURCE_LIST">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_RESOURCE_LIST</code><a class="headerlink" href="#winreg.REG_RESOURCE_LIST" title="永久链接至目标">¶</a></dt>
<dd><p>A device-driver resource list.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_FULL_RESOURCE_DESCRIPTOR">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_FULL_RESOURCE_DESCRIPTOR</code><a class="headerlink" href="#winreg.REG_FULL_RESOURCE_DESCRIPTOR" title="永久链接至目标">¶</a></dt>
<dd><p>A hardware setting.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_RESOURCE_REQUIREMENTS_LIST">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_RESOURCE_REQUIREMENTS_LIST</code><a class="headerlink" href="#winreg.REG_RESOURCE_REQUIREMENTS_LIST" title="永久链接至目标">¶</a></dt>
<dd><p>A hardware resource list.</p>
</dd></dl>

<dl class="data">
<dt id="winreg.REG_SZ">
<code class="sig-prename descclassname">winreg.</code><code class="sig-name descname">REG_SZ</code><a class="headerlink" href="#winreg.REG_SZ" title="永久链接至目标">¶</a></dt>
<dd><p>A null-terminated string.</p>
</dd></dl>

</div>
</div>
<div class="section" id="registry-handle-objects">
<span id="handle-object"></span><h2>Registry Handle Objects<a class="headerlink" href="#registry-handle-objects" title="永久链接至标题">¶</a></h2>
<p>This object wraps a Windows HKEY object, automatically closing it when the
object is destroyed.  To guarantee cleanup, you can call either the
<a class="reference internal" href="#winreg.PyHKEY.Close" title="winreg.PyHKEY.Close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Close()</span></code></a> method on the object, or the <a class="reference internal" href="#winreg.CloseKey" title="winreg.CloseKey"><code class="xref py py-func docutils literal notranslate"><span class="pre">CloseKey()</span></code></a> function.</p>
<p>All registry functions in this module return one of these objects.</p>
<p>All registry functions in this module which accept a handle object also accept
an integer, however, use of the handle object is encouraged.</p>
<p>Handle objects provide semantics for <a class="reference internal" href="../reference/datamodel.html#object.__bool__" title="object.__bool__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__bool__()</span></code></a> -- thus</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="n">handle</span><span class="p">:</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Yes&quot;</span><span class="p">)</span>
</pre></div>
</div>
<p>will print <code class="docutils literal notranslate"><span class="pre">Yes</span></code> if the handle is currently valid (has not been closed or
detached).</p>
<p>The object also support comparison semantics, so handle objects will compare
true if they both reference the same underlying Windows handle value.</p>
<p>Handle objects can be converted to an integer (e.g., using the built-in
<a class="reference internal" href="functions.html#int" title="int"><code class="xref py py-func docutils literal notranslate"><span class="pre">int()</span></code></a> function), in which case the underlying Windows handle value is
returned.  You can also use the <a class="reference internal" href="#winreg.PyHKEY.Detach" title="winreg.PyHKEY.Detach"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Detach()</span></code></a> method to return the
integer handle, and also disconnect the Windows handle from the handle object.</p>
<dl class="method">
<dt id="winreg.PyHKEY.Close">
<code class="sig-prename descclassname">PyHKEY.</code><code class="sig-name descname">Close</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#winreg.PyHKEY.Close" title="永久链接至目标">¶</a></dt>
<dd><p>Closes the underlying Windows handle.</p>
<p>If the handle is already closed, no error is raised.</p>
</dd></dl>

<dl class="method">
<dt id="winreg.PyHKEY.Detach">
<code class="sig-prename descclassname">PyHKEY.</code><code class="sig-name descname">Detach</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#winreg.PyHKEY.Detach" title="永久链接至目标">¶</a></dt>
<dd><p>Detaches the Windows handle from the handle object.</p>
<p>The result is an integer that holds the value of the handle before it is
detached.  If the handle is already detached or closed, this will return
zero.</p>
<p>After calling this function, the handle is effectively invalidated, but the
handle is not closed.  You would call this function when you need the
underlying Win32 handle to exist beyond the lifetime of the handle object.</p>
</dd></dl>

<dl class="method">
<dt id="winreg.PyHKEY.__enter__">
<code class="sig-prename descclassname">PyHKEY.</code><code class="sig-name descname">__enter__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#winreg.PyHKEY.__enter__" title="永久链接至目标">¶</a></dt>
<dt id="winreg.PyHKEY.__exit__">
<code class="sig-prename descclassname">PyHKEY.</code><code class="sig-name descname">__exit__</code><span class="sig-paren">(</span><em class="sig-param">*exc_info</em><span class="sig-paren">)</span><a class="headerlink" href="#winreg.PyHKEY.__exit__" title="永久链接至目标">¶</a></dt>
<dd><p>The HKEY object implements <a class="reference internal" href="../reference/datamodel.html#object.__enter__" title="object.__enter__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__enter__()</span></code></a> and
<a class="reference internal" href="../reference/datamodel.html#object.__exit__" title="object.__exit__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__exit__()</span></code></a> and thus supports the context protocol for the
<a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a> statement:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="k">with</span> <span class="n">OpenKey</span><span class="p">(</span><span class="n">HKEY_LOCAL_MACHINE</span><span class="p">,</span> <span class="s2">&quot;foo&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">key</span><span class="p">:</span>
    <span class="o">...</span>  <span class="c1"># work with key</span>
</pre></div>
</div>
<p>will automatically close <em>key</em> when control leaves the <a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a> block.</p>
</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">目录</a></h3>
  <ul>
<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winreg</span></code> --- Windows 注册表访问</a><ul>
<li><a class="reference internal" href="#functions">函数</a></li>
<li><a class="reference internal" href="#constants">常量</a><ul>
<li><a class="reference internal" href="#hkey-constants">HKEY_* Constants</a></li>
<li><a class="reference internal" href="#access-rights">Access Rights</a><ul>
<li><a class="reference internal" href="#bit-specific">64-bit Specific</a></li>
</ul>
</li>
<li><a class="reference internal" href="#value-types">Value Types</a></li>
</ul>
</li>
<li><a class="reference internal" href="#registry-handle-objects">Registry Handle Objects</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="msvcrt.html"
                        title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">msvcrt</span></code> --- 来自 MS VC++ 运行时的有用例程</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="winsound.html"
                        title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winsound</span></code> --- Sound-playing interface for Windows</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../bugs.html">提交 Bug</a></li>
      <li>
        <a href="https://github.com/python/cpython/blob/3.7/Doc/library/winreg.rst"
            rel="nofollow">显示源代码
        </a>
      </li>
    </ul>
  </div>
        </div>
      </div>
      <div class="clearer"></div>
    </div>  
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>导航</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="总目录"
             >索引</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python 模块索引"
             >模块</a> |</li>
        <li class="right" >
          <a href="winsound.html" title="winsound --- Sound-playing interface for Windows"
             >下一页</a> |</li>
        <li class="right" >
          <a href="msvcrt.html" title="msvcrt --- 来自 MS VC++ 运行时的有用例程"
             >上一页</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="https://www.python.org/">Python</a> &#187;</li>
        <li>
          <a href="../index.html">3.7.8 Documentation</a> &#187;
        </li>

          <li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
          <li class="nav-item nav-item-2"><a href="windows.html" >Windows系统相关模块</a> &#187;</li>
    <li class="right">
        

    <div class="inline-search" style="display: none" role="search">
        <form class="inline-search" action="../search.html" method="get">
          <input placeholder="快速搜索" type="text" name="q" />
          <input type="submit" value="转向" />
          <input type="hidden" name="check_keywords" value="yes" />
          <input type="hidden" name="area" value="default" />
        </form>
    </div>
    <script type="text/javascript">$('.inline-search').show(0);</script>
         |
    </li>

      </ul>
    </div>  
    <div class="footer">
    &copy; <a href="../copyright.html">版权所有</a> 2001-2020, Python Software Foundation.
    <br />
    Python 软件基金会是一个非盈利组织。
    <a href="https://www.python.org/psf/donations/">请捐助。</a>
    <br />
    最后更新于 6月 29, 2020.
    <a href="../bugs.html">发现了问题</a>？
    <br />
    使用<a href="http://sphinx.pocoo.org/">Sphinx</a>2.3.1 创建。
    </div>

  </body>
</html>